package com.fredia.terp.config;

import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.web.servlet.ErrorPage;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;

@Configuration
public class ExceptionConfig {
	
	/**
	 * Java 8 的lambda表达式写法
	 * 
	 * @return
	 * @author : wangyong
	 * @since : 2017年6月16日
	 */
	@Bean
	public EmbeddedServletContainerCustomizer containerCustomizer() {

		return (container -> {
			ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html");
			ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
			ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");

			container.addErrorPages(error401Page, error404Page, error500Page);
		});
	}

	// java 7 写法
	// @Bean
	// public EmbeddedServletContainerCustomizer containerCustomizer() {
	//
	// return new EmbeddedServletContainerCustomizer() {
	// @Override
	// public void customize(ConfigurableEmbeddedServletContainer container) {
	//
	// ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED,
	// "/401.html");
	// ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND,
	// "/404.html");
	// ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR,
	// "/500.html");
	//
	// container.addErrorPages(error401Page, error404Page, error500Page);
	// }
	// };
	// }
}
